package cn.edu.nchu.comic_strip.database.dao;

import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import androidx.room.Query;
import androidx.room.Update;

import java.util.List;

import cn.edu.nchu.comic_strip.entity.Book;

/**
 * @className: BookDao
 * @description: TODO 类描述
 * @author: Kuangkeli
 * @date: 2024/05/24 15:20
 **/
@Dao
public interface BookDao {
    /**
     * 插入图书
     * @param book
     */
    @Insert
    void insert(Book book);

    /**
     * 可变参数  插入图书/图书列表  发生冲突时覆盖
     * @param books
     */
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    void inserts(Book... books);

    /**
     * 删除图书/图书列表  可变参数
     * @param books
     * @return
     */
    @Delete
    int deletes(Book... books);


    /**
     * 修改对象
     * @param books
     * @return
     */
    @Update
    int update(Book... books);

    /**
     * 查询 根据id倒序
     * @return
     */
    @Query("select * from book order by id ")
    List<Book> getAllBooks();

    /**
     * 根据id查询  参数名前加：可以引用形参
     * @param numb
     * @return
     */
    @Query("select * from book where id =:numb")
    Book getBook(Integer numb);

    //删除表数据
    @Query("delete from book")
    void deleteTableData();

}
